TalendでSalesforceのオブジェクトをMySqlに対してSelect/Insertしてみた。

TalendでSalesforceのオブジェクトをMySqlに対してSelect/Insertしてみた。

Clock Icon2016.01.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

好物はインフラとフロントエンドのかじわらゆたかです。 前回TalendでSalesforceに接続を行いました。 今回はSalesforceで最初から作成されているオブジェクトからデータを抽出し、 MySQLのテーブルに反映させてみたいと思います。

tSalesforceInput

tSalesforceInput Salesforceのオブジェクトを抽出するコンポーネントになります。 接続情報を個別に設定することもできますし、tSalesforceConnectionの接続情報を用いることも可能です。

今回はtSalesforceConnectionで設定した接続情報を用いて、 Salesforceに最初から作成されているContact(取引先責任者)の情報を抽出してみたいと思います。

tSalesforceConnectionで接続情報を設定しコンポーネントがOKの場合で、 tSalesforceInputにつなげます。 tSalesForceInputでの抽出結果を見たいので、RowのメインをtLogRowにつなげます。 コンポーネント配置_0

tSalesforceInputの設定は既存の接続を使用で、tSalesforceConnectionを選択し、 オブジェクトはコンタクトを選びます。 tSalesforceInput_1

これで実行させると以下の様な結果を抽出することができます。 Result

MySQLへの反映

抽出した結果をMySQLのテーブルに反映したいと思います。 反映用のデータベースとテーブルを作成します。

CREATE DATABASE salesforce;
CREATE TABLE salesforce.contact (
Email text,
Name text
)

tMySQLConnectionに接続情報を設定し配置します。 tMySQLOutputに上記で作成したテーブルに合わせてスキーマを設定します。 tMySQLOutput

tSalesforceとtMySQLOutputの間にデータ変換を行うので、tMapを用いて変換を行います。 tMap

最後にtMySQLCommitを配置します。 すべてのコンポーネントを配置すると以下の様になります。 コンポーネント配置

上記のジョブを動かすと、MySQLに値が反映されたことが確認できます。

mysql> select * from salesforce.contact;
+---------------------------+-------------------+
| Email | Name |
+---------------------------+-------------------+
| [email protected] | Rose Gonzalez |
| [email protected] | Sean Forbes |
| [email protected] | Jack Rogers |
| [email protected] | Pat Stumuller |
| [email protected] | Andy Young |
| [email protected] | Tim Barr |
| [email protected] | John Bond |
| [email protected] | Stella Pavlova |
| [email protected] | Lauren Boyle |
| b.levy@expressl&t.net | Babara Levy |
| j.davis@expressl&t.net | Josh Davis |
| [email protected] | Jane Grey |
| [email protected] | Arthur Song |
| [email protected] | Ashley James |
| [email protected] | Tom Ripley |
| [email protected] | Liz D'Cruz |
| [email protected] | Edna Frank |
| [email protected] | Avi Green |
| NULL | Siddartha Nedaerk |
| NULL | Jake Llorrac |
+---------------------------+-------------------+

まとめ

SalesforceからMySQLのテーブルに対して、データを抽出し反映できたことが確認できました。 今回はMySQLに対して行いましたが、Redshiftにデータを反映させることで、 Salesforceのデータをビックデータ分析基盤のデータソースとして用いることもできそうです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.